function MoreThanHalfNum_Solution(numbers)
{
    // write code here
    // 摩尔投票
    // 假设给定的数组中 出现此时超过一半的数字为x 他出现的次数 逼其他所有 出现的次数的和还要多
    // 出现一个x +1 出现一个非x 就-1
    // 遍历完数组之后 可以得到的结论是 票数的和是大于0 的
    // 遍历数字 记为m 票数记为1
    // 遍历下一个数字 如果他等于m name票数+1
    // 否则如果不等于m 票数-1
    // 遍历到后面某一项,如果票数变为了0 ,就把遍历到这位之前的所有元素都可以删掉
    // 解释 1. 是要找的x的话 就说明去掉的数组中有一半 是x 有一半不是x 去掉后还是对原来的数据不影响 x依然是超过一半的数字
    // 解释 2. 如果不是x的话 就说明去掉了一半的数字 就说明 至少有一半的非x 剩下的也有坑是x 和非x 对这个后面的元素没有影响
    // 后面第一个继续记为m 一次类推 最后把票数设为1的就是要找的x
    // ------------------------------
    // 代码
    // 初始的时候将票数设置为0
    var rating = 0
    var res = 0
    // 遍历整个数组
    for(let i of numbers){
        if(rating === 0){
            res = i
        }
        if(res === i){
            rating++
        }else{
            rating--
        }
    }
    return res
}
module.exports = {
    MoreThanHalfNum_Solution : MoreThanHalfNum_Solution
};